add pay/wx/order/cancel

FFIB 5 年之前
父节点
当前提交
5bc4da0014
共有 2 个文件被更改,包括 26 次插入0 次删除
  1. 1 0
      api/urls.py
  2. 25 0
      pay/views.py

+ 1 - 0
api/urls.py

@@ -17,6 +17,7 @@ urlpatterns += [
17 17
 
18 18
 urlpatterns += [
19 19
     url(r'^pay/wx/order_create$', pay_views.wx_order_create_api, name='wx_order_create_api'),   # 订单创建
20
+    url(r'^pay/wx/order/cancel$', pay_views.order_cancel, name='order_cancel'),   # 订单创建
20 21
     url(r'^pay/wx/notify_url$', pay_views.wx_notify_url_api, name='wx_notify_url_api'),  # 支付异步通知回调地址
21 22
 ]
22 23
 

+ 25 - 0
pay/views.py

@@ -142,6 +142,31 @@ def wx_order_create_api(request):
142 142
         'wxpay_params': wxpay_params,
143 143
     })
144 144
 
145
+def order_cancel(request):
146
+    user_id = request.POST.get('user_id', '')
147
+    order_id = request.POST.get('order_id', '')
148
+    prepay_id = request.POST.get('prepay_id', '')
149
+
150
+    try:
151
+        order = OrderInfo.objects.get(user_id=user_id, order_id=order_id, prepay_id=prepay_id)
152
+    except:
153
+        return response()
154
+    
155
+    if order.pay_status == OrderInfo.FAIL:
156
+        return response(200, 'Order Cancel Success', '订单取消成功')
157
+    
158
+    order.pay_status = OrderInfo.FAIL
159
+    order.save()
160
+    
161
+    for g in order.goods_info:
162
+        try:
163
+            good = PackGoodsInfo.objects.get(pack_id=order.pack_id, good_id=g.get('good_id', ''))
164
+            good.inventory += g.get('num', 0)
165
+            good.save()
166
+        except PackGoodsInfo.DoesNotExist:
167
+            continue
168
+    
169
+    return response(200, 'Order Cancel Success', '订单取消成功')
145 170
 
146 171
 def order_paid_success(order):
147 172
     if order.pay_status == OrderInfo.PAID: